package traveldream.ejb.entities;

import java.io.Serializable;
import java.lang.String;

import javax.persistence.*;

import travelDream.ejb.DTOs.InvitoDTO;

/**
 * Entity implementation class for Entity: Invito
 *
 */
@Entity
@Table(name="INVITO")
@NamedQueries ({ @NamedQuery (name = Invito.FIND_BY_INVITATO_E_PREN, query = "SELECT i FROM Invito i JOIN Prenotazione p WHERE p.prenotazioneID = :prenID AND i.emailInvitato = :email"),
	@NamedQuery (name = Invito.FIND_BY_PREN, query = "SELECT i FROM Invito i JOIN Prenotazione p WHERE p.prenotazioneID = :prenID")
})

public class Invito implements Serializable {
	
	public static final String FIND_BY_INVITATO_E_PREN = "findByUtenteEPrenotazione";
	public static final String FIND_BY_PREN = "findByPrenotazione";

	   
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private int invitoID;
	private String emailInvitato;
	private String codiceLink;
	private boolean rispRicevuta = false;
	
	private static final long serialVersionUID = 1L;
	
	@ManyToOne		//relazione many-to-one con User
    private User invitante;
	
	
	//costruttore default
	public Invito() {
		super();
	}   
	
	//getters e setters
	public int getInvitoID() {
		return this.invitoID;
	}

	public void setInvitoID(int invitoID) {
		this.invitoID = invitoID;
	}   
	
	public String getEmailInvitato() {
		return this.emailInvitato;
	}

	public void setEmailInvitato(String emailInvitato) {
		this.emailInvitato = emailInvitato;
	}   
	
	public String getCodiceLink() {
		return this.codiceLink;
	}

	public void setCodiceLink(String codiceLink) {
		this.codiceLink = codiceLink;
	}   
	
	public boolean getRispRicevuta() {
		return this.rispRicevuta;
	}

	public void setRispRicevuta(boolean rispRicevuta) {
		this.rispRicevuta = rispRicevuta;
	}

	public User getInvitante() {
		return invitante;
	}

	public void setInvitante(User invitante) {
		this.invitante = invitante;
	}
	
	public InvitoDTO entityToDTO(){
		InvitoDTO tmp = new InvitoDTO();
		tmp.setInvitoId(invitoID);
		tmp.setCodiceLink(codiceLink);
		tmp.setEmailInvitato(emailInvitato);
		tmp.setRispRicevuta(rispRicevuta);
		return tmp;
	}
   
}
